/**
 * 认证相关接口类型定义
 * @author 张效玮2 yythis@163.com
 * @date 2025-01-15
 */

/** 发送短信验证码请求参数 */
export interface SendSmsRequestData {
  /** 手机号码 */
  phone: string
}

/** 发送短信验证码响应数据 */
export type SendSmsResponseData = ApiResponseData<{
  /** 验证码ID（用于后续验证） */
  codeId: string
  /** 发送时间 */
  sendTime: string
}>

/** 手机号登录请求参数 */
export interface PhoneLoginRequestData {
  /** 手机号码 */
  phone: string
  /** 验证码 */
  code: string
}

/** 手机号登录响应数据 */
export interface PhoneLoginResponseData {
  /** 响应状态码 */
  code: number
  /** 响应消息 */
  message: string
  /** 登录成功后的数据 */
  data?: {
    /** 访问令牌 */
    token: string
    /** 用户信息 */
    userInfo: {
      /** 用户ID */
      id: number
      /** 手机号 */
      phone: string
      /** 用户名 */
      username: string
      /** 昵称 */
      nickname: string
      /** 邮箱 */
      email: string | null
      /** 用户状态 */
      status: "ACTIVE" | "INACTIVE" | "SUSPENDED"
      /** 创建时间 */
      createdTime: string
      /** 更新时间 */
      updatedTime: string
      /** 最后登录时间 */
      lastLoginTime: string
    }
  }
}

/** 刷新令牌请求参数 */
export interface RefreshTokenRequestData {
  /** 刷新令牌 */
  refreshToken: string
}

/** 刷新令牌响应数据 */
export type RefreshTokenResponseData = ApiResponseData<{
  /** 新的访问令牌 */
  accessToken: string
  /** 新的刷新令牌 */
  refreshToken: string
}>

/** 退出登录响应数据 */
export type LogoutResponseData = ApiResponseData<null>
